namespace utils {
    uint32_t fnv1a_hash(const std::string& str) {
        const uint32_t FNV_prime = 16777619u;
        const uint32_t offset_basis = 2166136261u;
        uint32_t hash = offset_basis;
        for (char c : str) {
            hash ^= static_cast<uint32_t>(c);
            hash *= FNV_prime;
        }
        return hash;
    }
}
